/**
 * 统一的 API 响应封装类
 */
class ResultWrapper {
  /**
   * 成功响应
   * @param {any} data - 响应数据
   * @param {string} message - 成功消息
   * @returns {Object} 统一格式的成功响应
   */
  static success(data = null, message = '操作成功') {
    return {
      code: 200,
      message,
      data
    };
  }

  /**
   * 错误响应
   * @param {string} message - 错误消息
   * @param {number} code - 错误码
   * @returns {Object} 统一格式的错误响应
   */
  static error(message = '操作失败', code = 500) {
    return {
      code,
      message,
      data: null
    };
  }

  /**
   * 参数验证错误响应
   * @param {string} message - 错误消息
   * @returns {Object} 统一格式的参数验证错误响应
   */
  static validationError(message = '参数验证失败') {
    return this.error(message, 400);
  }

  /**
   * 未授权错误响应
   * @param {string} message - 错误消息
   * @returns {Object} 统一格式的未授权错误响应
   */
  static unauthorizedError(message = '未授权访问') {
    return this.error(message, 401);
  }

  /**
   * 禁止访问错误响应
   * @param {string} message - 错误消息
   * @returns {Object} 统一格式的禁止访问错误响应
   */
  static forbiddenError(message = '禁止访问') {
    return this.error(message, 403);
  }

  /**
   * 资源未找到错误响应
   * @param {string} message - 错误消息
   * @returns {Object} 统一格式的资源未找到错误响应
   */
  static notFoundError(message = '资源未找到') {
    return this.error(message, 404);
  }
}

module.exports = ResultWrapper;